package top.bulk.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import top.bulk.service.UserService;

import javax.annotation.Resource;

/**
 * 用于测试
 * <p></p>
 * <b>注意，对于事务的测试，不要使用单元测试，单元测试默认会回滚事务，测试起来比较麻烦</b>
 *
 * @author 散装java
 * @version 1.0.0
 * @date 2025-02-15
 */
@RestController
public class TxTestController {
    @Resource
    private UserService userService;

    /**
     * 测试声明式事务
     */
    @GetMapping("/t1")
    public String test1() {
        userService.declarativeTransaction();
        return "ok";
    }

    /**
     * 测试编程式事务
     */
    @GetMapping("/t2")
    public String test2() {
        userService.programmaticTransaction();
        return "ok";
    }

    /**
     * 多线程事务回滚
     */
    @GetMapping("/t3")
    public String test3() {
        userService.theadTransaction();
        return "ok";
    }
}
